
#ifndef LOD_TV_IFACE_H
#define LOD_TV_IFACE_H

#include <vector>

//! Triangles-aware vertex (tvertex) interface
//
/*! This is a base of all tvertex-type classes (that is, the classes of vertices
    holding an information about triangles containing them).*/
template<class it_type>
class tv_iface
{
    /*!
     * Making the constructor protected guarantees that only derived classes objects
     * will be instantiated (and we are not using virtual mechanism). */
    protected:
    tv_iface()
    {
    }

    public:
    //! Indices of the triangles containing this vertex
    std::vector<it_type> triangles;
    //! Number of the triangles containing this vertex
    it_type tcount;
};

#endif // LOD_TV_IFACE_H
